perm filename EX4.SAI[SAI,BGB] blob sn#143425 filedate 1975-02-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "EX4"
C00005 ENDMK
C⊗;
BEGIN "EX4"
	REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
	REQUIRE "GEOMES.HDR[SAI,BGB]" SOURCE_FILE;
	INTEGER I,C,B0,B1,B2;
	REAL X,Y,Z,U,V,W;
α SEQUENCE GENERATOR - S(X) = (137*X + 187)MOD 256 = (137*X - 69)MOD 256;
	SAFE SIMPLE INTEGER PROCEDURE S(INTEGER X);
	START_CODE
		DEFINE P="'17";
		MOVE 1,-1(P);IMULI 1,137;ADDI 1,187;
		ANDI 1,'377;POP P,-1(P);POPJ P,;
	END;	

α INITIALIZE GEOMED & THE PROTOTYPE OBJECT;
	MKUNIV;
	B0 ← MKCUBE(.2,.2,0);

α PLACE 256 OBJECTS INTO THE 8 FOOT CUBE OF SPACE IMMEDIATELY IN VIEW OF THE CAMERA;
	U←30.49; V←-69.2; W←-43.25;
	FOR I←0 THRU 255 DO
BEGIN
	B1 ← (IF I=255 THEN B0 ELSE MKCOPY(B0));
	X ← (I - 128)/32;
	Y ← (S(I) - 128)/32;
	Z ← (S(S(I)) - 128)/32;
	TRANSL(B1,X,Y,Z);
	IF I=0 THEN B2←B1 ELSE BATT(B1,B2);
END;
	C←SON(UNIVERSE);
	C←SON(C);
	C←TRAM(C);
	W←12.5;SETFOC(W);ZWC(C)←W;
	FOR I←1 THRU 10 DO ⊂ GEODPY;PLOTO("QW."&CVS(I));SETFOC(W←2*W);ZWC(C)←W;⊃;
	FOR I←11 THRU 20 DO ⊂ GEODPY;PLOTO("QW."&CVS(I));SETFOC(W←0.5*W);ZWC(C)←W;⊃;
END "EX4";